<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>MIC: Referencia de la Clase ServidorRemoto</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">MIC
   
   </div>
   <div id="projectbrief">Motor de Inteligencia de Comercio en tiempo real</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generado por Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Buscar');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Página&#160;principal</span></a></li>
      <li><a href="pages.html"><span>Páginas&#160;relacionadas</span></a></li>
      <li class="current"><a href="annotated.html"><span>Clases</span></a></li>
      <li><a href="files.html"><span>Archivos</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Buscar" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Lista&#160;de&#160;clases</span></a></li>
      <li><a href="classes.html"><span>Índice&#160;de&#160;clases</span></a></li>
      <li><a href="hierarchy.html"><span>Jerarquía&#160;de&#160;la&#160;clase</span></a></li>
      <li><a href="functions.html"><span>Miembros&#160;de&#160;las&#160;clases</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classServidorRemoto.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Métodos públicos</a>  </div>
  <div class="headertitle">
<div class="title">Referencia de la Clase ServidorRemoto</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="ServidorRemoto" -->
<p><code>#include &lt;<a class="el" href="ServidorRemoto_8h_source.html">ServidorRemoto.h</a>&gt;</code></p>

<p><a href="classServidorRemoto-members.html">Lista de todos los miembros.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Métodos públicos</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServidorRemoto.html#a72f8c644faf3490b1f92a46b6511d9a7">ServidorRemoto</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServidorRemoto.html#a1463614bdc7306b059312d24d6b8ad6e">~ServidorRemoto</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServidorRemoto.html#ada46e4be2c67a36dc407e8b56d55d25a">conectar</a> ()  throw (char* )</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServidorRemoto.html#a88916beeb79e2c6fae55855421dc4e12">enviarConsulta</a> (<a class="el" href="classConsultante.html">Consultante</a> *consultante, <a class="el" href="classConsulta.html">Consulta</a> consulta)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServidorRemoto.html#ab94de4bf6596f587cd2ecc322505c170">cantidadRespuestas</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRespuesta.html">Respuesta</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServidorRemoto.html#ad72107564d7d94d961d4520037496918">obtenerRespuesta</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServidorRemoto.html#a80cb4acdf8cdd7138f9cd525bfd9414a">cancelarConsulta</a> (unsigned IDcons)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServidorRemoto.html#a5c362b6e732e03f2f5cf6b2020d3e518">conectado</a> ()</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Descripción detallada</h2>
<div class="textblock"><p>Esta clase es el proxy del servidor. A través de la misma es que el cliente se puede comunicar con el servidor. Tiene la responsabilidad de enviar consultas y recibir las respuestas. Esto lo logra a traves de sus workers. Posee dos colas, una de consultas y una de respuestas. Al llegar un pedido de consulta, lo encola en la cola correspondiente. Al llegar un pedido por respuestas, intenta sacar de la cola de respuestas.</p>
<p>Cabe destacar que las respuestas no van a respetar el orden de las consultas enviadas. Es decir, si se enviaron las consultas 1, 2 y 3, puede darse el caso en que se reciban las respuestas en el orden 2, 3, 1 o cualquier otra combinación. Esto dependerá de los tiempos de respuesta del servidor y de la amplitud de cada consulta enviada.</p>
<p>El servidor remoto también es capaz de aceptar pedidos de cancelación de alguna consulta dada. Es decir, si se canceló una consulta pedida con anterioridad, se rechazará la misma ya sea cuando llegue o cuando se intente enviar. </p>
</div><hr/><h2>Documentación del constructor y destructor</h2>
<a class="anchor" id="a72f8c644faf3490b1f92a46b6511d9a7"></a><!-- doxytag: member="ServidorRemoto::ServidorRemoto" ref="a72f8c644faf3490b1f92a46b6511d9a7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classServidorRemoto.html#a72f8c644faf3490b1f92a46b6511d9a7">ServidorRemoto::ServidorRemoto</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Al construirse, verifica la configuración de puerto de servRemoto.conf. No inicia ningun consumer. </p>

</div>
</div>
<a class="anchor" id="a1463614bdc7306b059312d24d6b8ad6e"></a><!-- doxytag: member="ServidorRemoto::~ServidorRemoto" ref="a1463614bdc7306b059312d24d6b8ad6e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classServidorRemoto.html#a1463614bdc7306b059312d24d6b8ad6e">ServidorRemoto::~ServidorRemoto</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Detiene todo lo que tiene que detener, vacía todo lo que tiene que vaciar. Desconecta la conexion </p>

</div>
</div>
<hr/><h2>Documentación de las funciones miembro</h2>
<a class="anchor" id="a80cb4acdf8cdd7138f9cd525bfd9414a"></a><!-- doxytag: member="ServidorRemoto::cancelarConsulta" ref="a80cb4acdf8cdd7138f9cd525bfd9414a" args="(unsigned IDcons)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classServidorRemoto.html#a80cb4acdf8cdd7138f9cd525bfd9414a">ServidorRemoto::cancelarConsulta</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>IDcons</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Recibe un IDcons y lo marca en el BitMap como consulta cancelada. De esta forma, la próxima consulta que se reciba o intente mandar con ese ID, será descartada. </p>

</div>
</div>
<a class="anchor" id="ab94de4bf6596f587cd2ecc322505c170"></a><!-- doxytag: member="ServidorRemoto::cantidadRespuestas" ref="ab94de4bf6596f587cd2ecc322505c170" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned <a class="el" href="classServidorRemoto.html#ab94de4bf6596f587cd2ecc322505c170">ServidorRemoto::cantidadRespuestas</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Devuelve la cantidad de respuestas que posee en la cola de respuestas </p>

</div>
</div>
<a class="anchor" id="a5c362b6e732e03f2f5cf6b2020d3e518"></a><!-- doxytag: member="ServidorRemoto::conectado" ref="a5c362b6e732e03f2f5cf6b2020d3e518" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classServidorRemoto.html#a5c362b6e732e03f2f5cf6b2020d3e518">ServidorRemoto::conectado</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sirve para verificar si el servidor esta conectado o no. </p>

</div>
</div>
<a class="anchor" id="ada46e4be2c67a36dc407e8b56d55d25a"></a><!-- doxytag: member="ServidorRemoto::conectar" ref="ada46e4be2c67a36dc407e8b56d55d25a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classServidorRemoto.html#ada46e4be2c67a36dc407e8b56d55d25a">ServidorRemoto::conectar</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>  throw (char* )</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Método que sirve para iniciar tanto la conexion como los hilos. </p>
<dl class="exception"><dt><b>Excepciones:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">char*</td><td>si no puede conectar, lanza un mensaje de error. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a88916beeb79e2c6fae55855421dc4e12"></a><!-- doxytag: member="ServidorRemoto::enviarConsulta" ref="a88916beeb79e2c6fae55855421dc4e12" args="(Consultante *consultante, Consulta consulta)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classServidorRemoto.html#a88916beeb79e2c6fae55855421dc4e12">ServidorRemoto::enviarConsulta</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classConsultante.html">Consultante</a> *&#160;</td>
          <td class="paramname"><em>consultante</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classConsulta.html">Consulta</a>&#160;</td>
          <td class="paramname"><em>consulta</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Este método es el encargado de recibir la consulta por parte del cliente. En el mismo, lo que se hace es encolar la consulta en la cola de consultas pendientes. Luego, el hilo correspondiente se encargara del envío de la misma. </p>

</div>
</div>
<a class="anchor" id="ad72107564d7d94d961d4520037496918"></a><!-- doxytag: member="ServidorRemoto::obtenerRespuesta" ref="ad72107564d7d94d961d4520037496918" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classRespuesta.html">Respuesta</a> <a class="el" href="classServidorRemoto.html#ad72107564d7d94d961d4520037496918">ServidorRemoto::obtenerRespuesta</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Es el encargado de sacar una respuesta de la cola de respuestas recibidas. Lo utiliza el hilo de gtk para obtener las respuestas. </p>

</div>
</div>
<hr/>La documentación para esta clase fue generada a partir de los siguientes ficheros:<ul>
<li>cliente/Modelo/<a class="el" href="ServidorRemoto_8h_source.html">ServidorRemoto.h</a></li>
<li>cliente/Modelo/ServidorRemoto.cpp</li>
</ul>
</div><!-- contents -->
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Todo</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Clases</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Funciones</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Enumeraciones</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="classServidorRemoto.html">ServidorRemoto</a>      </li>

    <li class="footer">Generado el Martes, 10 de Julio de 2012 15:15:47 para MIC por
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
